package net.dahanne.spring.android.ch3.message.converters.feedreader;
import java.util.Collections;
import org.springframework.http.MediaType;
import org.springframework.http.converter.feed.RssChannelHttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.webkit.WebView;
import com.google.code.rome.android.repackaged.com.sun.syndication.feed.rss.Channel;
import com.google.code.rome.android.repackaged.com.sun.syndication.feed.rss.Item;
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WebView resultTextView = (WebView) findViewById(R.id.result_text);
AsyncTask<String, Void, Channel> simpleGetTask = new AsyncTask<String, Void, Channel>() {
@Override
protected Channel doInBackground(String... params) {
RestTemplate restTemplate = new RestTemplate();
// Configure the RSS message converter.
RssChannelHttpMessageConverter rssChannelConverter = new RssChannelHttpMessageConverter();
rssChannelConverter.setSupportedMediaTypes(Collections.singletonList(MediaType.TEXT_XML));
// Add the RSS message converter to the RestTemplate instance
restTemplate.getMessageConverters().add(rssChannelConverter);
// Make the HTTP GET request on the url (params[0]), marshaling the response to a String
return restTemplate.getForObject(params[0], Channel.class);
}
@Override
protected void onPostExecute(Channel result) {
//get the latest article from the blog
Item item = (Item) result.getItems().get(1);
// load the content of the article into the WebView
resultTextView.loadData(item.getContent().getValue(), "text/html", "UTF-8");
}
};
String url = "http://blog.dahanne.net/feed/";
// triggers the task; it will update the resultTextView once it is done
simpleGetTask.execute(url);
}
}